package com.cruise.game.common.enums;

import lombok.AllArgsConstructor;
import lombok.Getter;

/**
 * 用户状态枚举
 *
 * @author cruise
 * @date 2025-02-28
 */
@Getter
@AllArgsConstructor
public enum UserStatusEnum {

    /**
     * 正常
     */
    ACTIVE("active", "正常"),

    /**
     * 未激活
     */
    INACTIVE("inactive", "未激活"),

    /**
     * 封禁
     */
    BANNED("banned", "封禁");

    /**
     * 状态值
     */
    private final String value;

    /**
     * 状态描述
     */
    private final String desc;

    /**
     * 根据状态值获取枚举
     *
     * @param value 状态值
     * @return 枚举
     */
    public static UserStatusEnum getByValue(String value) {
        for (UserStatusEnum status : values()) {
            if (status.getValue().equals(value)) {
                return status;
            }
        }
        return null;
    }

    /**
     * 是否是正常状态
     *
     * @param status 状态
     * @return 是否是正常状态
     */
    public static boolean isActive(String status) {
        return ACTIVE.getValue().equals(status);
    }

    /**
     * 是否是封禁状态
     *
     * @param status 状态
     * @return 是否是封禁状态
     */
    public static boolean isBanned(String status) {
        return BANNED.getValue().equals(status);
    }
}
